/**
 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.mto.module.karaoke.service.base;

import com.liferay.counter.service.CounterLocalService;

import com.liferay.portal.kernel.bean.BeanReference;
import com.liferay.portal.kernel.bean.IdentifiableBean;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.service.BaseServiceImpl;
import com.liferay.portal.service.ResourceLocalService;
import com.liferay.portal.service.ResourceService;
import com.liferay.portal.service.UserLocalService;
import com.liferay.portal.service.UserService;
import com.liferay.portal.service.persistence.ResourcePersistence;
import com.liferay.portal.service.persistence.UserPersistence;

import com.mto.module.karaoke.model.Song;
import com.mto.module.karaoke.service.CategoryLocalService;
import com.mto.module.karaoke.service.CategoryService;
import com.mto.module.karaoke.service.SongLocalService;
import com.mto.module.karaoke.service.SongService;
import com.mto.module.karaoke.service.UserSongsLocalService;
import com.mto.module.karaoke.service.UserSongsService;
import com.mto.module.karaoke.service.persistence.CategoryPersistence;
import com.mto.module.karaoke.service.persistence.SongFinder;
import com.mto.module.karaoke.service.persistence.SongPersistence;
import com.mto.module.karaoke.service.persistence.UserSongsPersistence;

import javax.sql.DataSource;

/**
 * The base implementation of the song remote service.
 *
 * <p>
 * This implementation exists only as a container for the default service methods generated by ServiceBuilder. All custom service methods should be put in {@link com.mto.module.karaoke.service.impl.SongServiceImpl}.
 * </p>
 *
 * @author vuonglm
 * @see com.mto.module.karaoke.service.impl.SongServiceImpl
 * @see com.mto.module.karaoke.service.SongServiceUtil
 * @generated
 */
public abstract class SongServiceBaseImpl extends BaseServiceImpl
	implements SongService, IdentifiableBean {
	/*
	 * NOTE FOR DEVELOPERS:
	 *
	 * Never modify or reference this class directly. Always use {@link com.mto.module.karaoke.service.SongServiceUtil} to access the song remote service.
	 */

	/**
	 * Returns the category local service.
	 *
	 * @return the category local service
	 */
	public CategoryLocalService getCategoryLocalService() {
		return categoryLocalService;
	}

	/**
	 * Sets the category local service.
	 *
	 * @param categoryLocalService the category local service
	 */
	public void setCategoryLocalService(
		CategoryLocalService categoryLocalService) {
		this.categoryLocalService = categoryLocalService;
	}

	/**
	 * Returns the category remote service.
	 *
	 * @return the category remote service
	 */
	public CategoryService getCategoryService() {
		return categoryService;
	}

	/**
	 * Sets the category remote service.
	 *
	 * @param categoryService the category remote service
	 */
	public void setCategoryService(CategoryService categoryService) {
		this.categoryService = categoryService;
	}

	/**
	 * Returns the category persistence.
	 *
	 * @return the category persistence
	 */
	public CategoryPersistence getCategoryPersistence() {
		return categoryPersistence;
	}

	/**
	 * Sets the category persistence.
	 *
	 * @param categoryPersistence the category persistence
	 */
	public void setCategoryPersistence(CategoryPersistence categoryPersistence) {
		this.categoryPersistence = categoryPersistence;
	}

	/**
	 * Returns the song local service.
	 *
	 * @return the song local service
	 */
	public SongLocalService getSongLocalService() {
		return songLocalService;
	}

	/**
	 * Sets the song local service.
	 *
	 * @param songLocalService the song local service
	 */
	public void setSongLocalService(SongLocalService songLocalService) {
		this.songLocalService = songLocalService;
	}

	/**
	 * Returns the song remote service.
	 *
	 * @return the song remote service
	 */
	public SongService getSongService() {
		return songService;
	}

	/**
	 * Sets the song remote service.
	 *
	 * @param songService the song remote service
	 */
	public void setSongService(SongService songService) {
		this.songService = songService;
	}

	/**
	 * Returns the song persistence.
	 *
	 * @return the song persistence
	 */
	public SongPersistence getSongPersistence() {
		return songPersistence;
	}

	/**
	 * Sets the song persistence.
	 *
	 * @param songPersistence the song persistence
	 */
	public void setSongPersistence(SongPersistence songPersistence) {
		this.songPersistence = songPersistence;
	}

	/**
	 * Returns the song finder.
	 *
	 * @return the song finder
	 */
	public SongFinder getSongFinder() {
		return songFinder;
	}

	/**
	 * Sets the song finder.
	 *
	 * @param songFinder the song finder
	 */
	public void setSongFinder(SongFinder songFinder) {
		this.songFinder = songFinder;
	}

	/**
	 * Returns the user songs local service.
	 *
	 * @return the user songs local service
	 */
	public UserSongsLocalService getUserSongsLocalService() {
		return userSongsLocalService;
	}

	/**
	 * Sets the user songs local service.
	 *
	 * @param userSongsLocalService the user songs local service
	 */
	public void setUserSongsLocalService(
		UserSongsLocalService userSongsLocalService) {
		this.userSongsLocalService = userSongsLocalService;
	}

	/**
	 * Returns the user songs remote service.
	 *
	 * @return the user songs remote service
	 */
	public UserSongsService getUserSongsService() {
		return userSongsService;
	}

	/**
	 * Sets the user songs remote service.
	 *
	 * @param userSongsService the user songs remote service
	 */
	public void setUserSongsService(UserSongsService userSongsService) {
		this.userSongsService = userSongsService;
	}

	/**
	 * Returns the user songs persistence.
	 *
	 * @return the user songs persistence
	 */
	public UserSongsPersistence getUserSongsPersistence() {
		return userSongsPersistence;
	}

	/**
	 * Sets the user songs persistence.
	 *
	 * @param userSongsPersistence the user songs persistence
	 */
	public void setUserSongsPersistence(
		UserSongsPersistence userSongsPersistence) {
		this.userSongsPersistence = userSongsPersistence;
	}

	/**
	 * Returns the counter local service.
	 *
	 * @return the counter local service
	 */
	public CounterLocalService getCounterLocalService() {
		return counterLocalService;
	}

	/**
	 * Sets the counter local service.
	 *
	 * @param counterLocalService the counter local service
	 */
	public void setCounterLocalService(CounterLocalService counterLocalService) {
		this.counterLocalService = counterLocalService;
	}

	/**
	 * Returns the resource local service.
	 *
	 * @return the resource local service
	 */
	public ResourceLocalService getResourceLocalService() {
		return resourceLocalService;
	}

	/**
	 * Sets the resource local service.
	 *
	 * @param resourceLocalService the resource local service
	 */
	public void setResourceLocalService(
		ResourceLocalService resourceLocalService) {
		this.resourceLocalService = resourceLocalService;
	}

	/**
	 * Returns the resource remote service.
	 *
	 * @return the resource remote service
	 */
	public ResourceService getResourceService() {
		return resourceService;
	}

	/**
	 * Sets the resource remote service.
	 *
	 * @param resourceService the resource remote service
	 */
	public void setResourceService(ResourceService resourceService) {
		this.resourceService = resourceService;
	}

	/**
	 * Returns the resource persistence.
	 *
	 * @return the resource persistence
	 */
	public ResourcePersistence getResourcePersistence() {
		return resourcePersistence;
	}

	/**
	 * Sets the resource persistence.
	 *
	 * @param resourcePersistence the resource persistence
	 */
	public void setResourcePersistence(ResourcePersistence resourcePersistence) {
		this.resourcePersistence = resourcePersistence;
	}

	/**
	 * Returns the user local service.
	 *
	 * @return the user local service
	 */
	public UserLocalService getUserLocalService() {
		return userLocalService;
	}

	/**
	 * Sets the user local service.
	 *
	 * @param userLocalService the user local service
	 */
	public void setUserLocalService(UserLocalService userLocalService) {
		this.userLocalService = userLocalService;
	}

	/**
	 * Returns the user remote service.
	 *
	 * @return the user remote service
	 */
	public UserService getUserService() {
		return userService;
	}

	/**
	 * Sets the user remote service.
	 *
	 * @param userService the user remote service
	 */
	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	/**
	 * Returns the user persistence.
	 *
	 * @return the user persistence
	 */
	public UserPersistence getUserPersistence() {
		return userPersistence;
	}

	/**
	 * Sets the user persistence.
	 *
	 * @param userPersistence the user persistence
	 */
	public void setUserPersistence(UserPersistence userPersistence) {
		this.userPersistence = userPersistence;
	}

	public void afterPropertiesSet() {
	}

	public void destroy() {
	}

	/**
	 * Returns the Spring bean ID for this bean.
	 *
	 * @return the Spring bean ID for this bean
	 */
	public String getBeanIdentifier() {
		return _beanIdentifier;
	}

	/**
	 * Sets the Spring bean ID for this bean.
	 *
	 * @param beanIdentifier the Spring bean ID for this bean
	 */
	public void setBeanIdentifier(String beanIdentifier) {
		_beanIdentifier = beanIdentifier;
	}

	public Object invokeMethod(String name, String[] parameterTypes,
		Object[] arguments) throws Throwable {
		return _clpInvoker.invokeMethod(name, parameterTypes, arguments);
	}

	protected Class<?> getModelClass() {
		return Song.class;
	}

	protected String getModelClassName() {
		return Song.class.getName();
	}

	/**
	 * Performs an SQL query.
	 *
	 * @param sql the sql query
	 */
	protected void runSQL(String sql) throws SystemException {
		try {
			DataSource dataSource = songPersistence.getDataSource();

			SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
					sql, new int[0]);

			sqlUpdate.update();
		}
		catch (Exception e) {
			throw new SystemException(e);
		}
	}

	@BeanReference(type = CategoryLocalService.class)
	protected CategoryLocalService categoryLocalService;
	@BeanReference(type = CategoryService.class)
	protected CategoryService categoryService;
	@BeanReference(type = CategoryPersistence.class)
	protected CategoryPersistence categoryPersistence;
	@BeanReference(type = SongLocalService.class)
	protected SongLocalService songLocalService;
	@BeanReference(type = SongService.class)
	protected SongService songService;
	@BeanReference(type = SongPersistence.class)
	protected SongPersistence songPersistence;
	@BeanReference(type = SongFinder.class)
	protected SongFinder songFinder;
	@BeanReference(type = UserSongsLocalService.class)
	protected UserSongsLocalService userSongsLocalService;
	@BeanReference(type = UserSongsService.class)
	protected UserSongsService userSongsService;
	@BeanReference(type = UserSongsPersistence.class)
	protected UserSongsPersistence userSongsPersistence;
	@BeanReference(type = CounterLocalService.class)
	protected CounterLocalService counterLocalService;
	@BeanReference(type = ResourceLocalService.class)
	protected ResourceLocalService resourceLocalService;
	@BeanReference(type = ResourceService.class)
	protected ResourceService resourceService;
	@BeanReference(type = ResourcePersistence.class)
	protected ResourcePersistence resourcePersistence;
	@BeanReference(type = UserLocalService.class)
	protected UserLocalService userLocalService;
	@BeanReference(type = UserService.class)
	protected UserService userService;
	@BeanReference(type = UserPersistence.class)
	protected UserPersistence userPersistence;
	private String _beanIdentifier;
	private SongServiceClpInvoker _clpInvoker = new SongServiceClpInvoker();
}